package com.example.aigc_education.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.aigc_education.domain.Checklist;
import com.example.aigc_education.domain.dto.PageDTO;
import com.example.aigc_education.domain.request.ChecklistQueryRequest;
import com.example.aigc_education.domain.request.TimerEndRequest;
import com.example.aigc_education.domain.request.UpdateChecklistRequest;
import com.example.aigc_education.domain.request.UpdateTimerRequest;
import com.example.aigc_education.domain.vo.ChecklistVO;
import com.example.aigc_education.utils.ResultUtil;

import java.util.List;


public interface ChecklistService extends IService<Checklist> {

    /**
     * 分页查询计划
     * @param userId 用户id
     * @param checklistQueryRequest 查询条件
     * @return 返回分页查询结果
     */
    PageDTO<ChecklistVO> queryChecklistPage(Long userId, ChecklistQueryRequest checklistQueryRequest);

    ResultUtil updateChecklistInfo(UpdateChecklistRequest updateChecklistRequest);

    ResultUtil updateAfterTime(TimerEndRequest timerEndRequest);


    List<Checklist> getAllChecklist();

    void addChecklist(Checklist checklist);

    void updateChecklistById(Checklist checklist, Long checklistId);

    void deleteChecklistById(Long checklistId);

    ResultUtil startTimer(Long checklistId);

    ResultUtil updateTimingStatus(UpdateTimerRequest updateTimerRequest);

    ResultUtil getTimingStatus(Long checklistId);

    ResultUtil getTodayChecklists(Long userId);
}
